#include "MenuPedido.h"

#include "ConstantesGlobais.h"
#include "Funcoes.h"
#include "Mensagens.h"
#include<iostream>
#include<conio.h>

using namespace std;
using namespace entregadepedidos::util::funcoes;
using namespace entregadepedidos::util::global;

namespace entregadepedidos{

	namespace entidades{
	
		namespace submenu{

		//Construtor
		
				MenuPedido::MenuPedido(const int &numeroItens): Menu(numeroItens){}
					
				MenuPedido::~MenuPedido(){}
				
				void MenuPedido::getOpcao() throw(MenuPedidoException){
					char selectMenu;
					
					try{
					
					do{
					
					imprime();
					
					selectMenu=getch();
								
					switch(selectMenu){	
					
								case '1':
									Opcao1();
									break;
									
								case '2':		
									Opcao2();
									break;
									
								case '3':		
									break;
																					
								default: 
									
									cout << endl << Mensagens::GET_MENU_PRINCIPAL_OPCAO_INVALIDA();
									
									// Metodo para pausar o programa
									Funcoes::pausarPrograma();
								
								}
								
							}while(selectMenu!='3');
					
					}catch(FuncoesException ex){
						throw MenuPedidoException(ex.what(), ex.getDescricao());	
					}catch(MenuException ex){
						throw MenuPedidoException(ex.what(), ex.getDescricao());
					}catch(...){
						throw MenuPedidoException(ConstantesGlobais::GET_ERRO(),Mensagens::GET_MENU_PRINCIPAL_GETOPCAO_ERRO());
					}		
							
				}
				
				void MenuPedido::Opcao1()const throw(MenuPedidoException){
					cout << endl << "teste menu1";
					// Metodo para pausar o programa
					Funcoes::pausarPrograma();						
				}
				
				void MenuPedido::Opcao2()const throw(MenuPedidoException){
					cout << endl << "teste menu2";
					// Metodo para pausar o programa
					Funcoes::pausarPrograma();						
				}		

		}
		
	}
	
}
